package day7.timer;

import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;

/**
 * 一个Timer只会创造一个线程，启动多个TimerTask只是由一个任务轮流做它们
 */
public class UserTimer2 {
    public static void main(String[] args) {
        // 定时器
        Timer timer = new Timer();
//        Timer timer2 = new Timer();

        // 定时任务1
        TimerTask timerTask1 = new TimerTask() {
            @Override
            public void run() {
                System.out.println("每隔2s打印任务1");
            }
        };
        // 定时任务2
        TimerTask timerTask2 = new TimerTask() {
            @Override
            public void run() {
                System.out.println("每隔5s打印任务2");
                // 因为我们是先启动了任务2,假设做一次它需要1天，那我们只能等它做完一次，才能做任务1
                // 说明同一Timer下的不同TimerTask是在同一线程下进行的
//                try {
//                    TimeUnit.DAYS.sleep(1);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
            }
        };

        // 启动任务1
        timer.schedule(timerTask1, 3000, 2000);
        // 启动任务2
        timer.schedule(timerTask2, 1000, 5000);
        // 虽然打印结果是交错的，但是一个Timer只会开启一个线程

        // 开启新的线程
//        timer2.schedule(timerTask2, 1000, 5000);
    }
}
